package com.sunyur.tailor.channel.common.inner.base;

import lombok.Data;

import java.util.List;

/**
 * @program: tailor_channel
 * @description:
 * @author: pengbing
 * @create: 2021-05-28 15:20
 **/
@Data
public class MsgResultCode {

    private Long id;
    /**
     * 单号
     */
    private String code;
    /**
     * 申请单号
     */
    private String applyCode;
    /**
     * 发货单号
     */
    private String sendOrderCode;
    /**
     * 原因
     */
    private String reason;
    /**
     * 审核人code
     */
    private String confirmerCode;
    /**
     * 审核时间
     */
    private Long confirmTime;
    /**
     * 外部审批撤回消息体中的单据编号
     */
    private String businessCode;

    /**
     * 操作人
     */
    private String operatorCode;
    /**
     * 操作说明
     * 注：线下处理特殊格式，处理方式 + : + 说明（如：自采:低值采购）
     */
    private String operateRemark;
    /**
     * 主操作类型
     * 4001：需求池关闭；
     * 6001：需求池线下处理；
     * 7001：需求行退回；
     * 21001: 自采标签；
     */
    private String operateType;
    /**
     * 请购单行号
     */
    private List<String> applyItemCodes;
    /**
     * 子操作类型（如线下处理存在多种操作细分）：
     * IDLE_SUPPLIES:取闲置物资;
     * RECEIVING_SUPPLIES:领库存物资;
     * OTHERS:其他;
     * SELF_HARVESTING:自采
     */
    private String operateSubType;
    /**
     * 操作人工号（查不到为空）
     */
    private String operateWorkNumber;
    /**
     * 业务类型,receiveOrder:"收货单",
     */
    private String workflowBusiness;
    /**
     * 取消订单行
     */
    private List<Item> items;
    /**
     * 备注（失效原因）
     */
    private String remark;
    /**
     * 操作类型
     * <p>
     * 0000: 创建/更新请购单
     * 0001: 打回草稿
     * 0003: PR提交(提交流程)
     * 1501：外部校验
     * 3001：审批通过
     * 4001：审批驳回
     * 5001: 关闭请购单
     * 9999: 删除请购单
     */
    private String processType;

    @Data
    public class Item {
        /**
         * 取消订单时的订单行号
         */
        private String code;
    }

    /**
     * @description:
     * @author: jinzhe.jz 
     * @date: 2022/8/3 17:01
     * @param: 事件类型 例如commit
     * @return: 
     **/
    private String action;
}
